本地化应用程序
本地化涉及不同资源的创建和使用,例如您要在应用程序中支持的地区的文本、纹理和样式等。 Kanzi 使用为每个地区保存一个单独值的资源 ID,间接使用本地化资源。Kanzi 使用本地化表记录本地化资源和地区。您可以在素材库 (Library) > 本地化 (Localization) 中的本地化表中看到应用程序使用的所有本地化资源和地区。
要本地化您的 Kanzi 应用程序:
- 将您的工程中要本地化的资源添加到本地化表中。请参阅添加资源至本地化表。
- 本地化资源。请参阅本地化文本资源和本地化其他资源。
- 编辑本地化的资源。请参阅编辑本地化的资源。
您也可以本地化主题。请参阅本地化主题。
完成教程,了解如何本地化您的 Kanzi 应用程序。请参阅教程:本地化您的应用程序。
添加资源至本地化表
如果具有要本地化的完整 Kanzi 应用程序,或者为已经本地化的 Kanzi 应用程序添加了内容,则您必须为要本地化的主题创建资源 ID 并将它们添加到本地化表中。为要本地化的资源创建了资源 ID 并将它们添加到本地化表中之后,您即可开始本地化您的 Kanzi 应用程序。请参阅本地化文本资源和本地化其他资源。
要创建资源 ID 并将它们添加到本地化表中:
- 在工程 (Project) 中,右键点击屏幕 (Screen) 节点,并在上下文菜单中选择添加资源至本地化表 (Add Resources to a Localization Table)。
当在屏幕 (Screen) 节点上使用添加资源至本地化表 (Add Resources to a Localization Table) 命令时,您可以使用 Kanzi Studio 将工程中的所有资源添加到本地化表中并将它们本地化。要只将所选节点及其节点树的资源添加到本地化表,请右键点击节点并选择 添加资源至本地化表 (Add Resources to a Localization Table)。
- 在添加资源至本地化表 (Add Resources to a Localization Table) 窗口中设置:
- 本地化表 (Localization Table) 添加到您要添加资源的本地化表。如果您没有本地化表,选择<Create New>。
本地化表包含有关哪些地区使用哪些资源的信息。 - 选择要在添加资源至本地化表 (Add Resources to a Localization Table) 窗口中显示的资源类型。
例如,要只显示文本和图像资源,请选择 和 。
- 在列出了您所选类型的所有资源的表格中,点击要添加到您所选本地化表中的资源旁边的复选框。要更改资源 ID,请右键点击资源 ID 并输入一个新名称。
Kanzi Studio 会为对文本 (Text) 属性使用同一个值的多个文本块 (Text Block) 节点创建一个单个的资源 ID。这些节点在本地化表中共享同一个条目。 - 点击添加 (Add)。
Kanzi Studio 从您选择的所有资源类型创建资源和资源 ID,并将其添加到您选择的本地化表中。您可以在素材库 (Library) > 本地化 (Localization)中找到本地化表。现在您可以本地化资源,并在本地化表中设置要将哪个资源用于哪个地区。
- 您可以开始本地化您的 Kanzi 应用程序。请参阅本地化文本资源、本地化其他资源和编辑本地化的资源。
本地化文本资源
Kanzi使用 gettext 的 .po 文件格式处理本地化的文本资源。请参阅 PO 文件格式。要使用其他格式导入和导出本地化的文本资源,您可以使用 Kanzi Localization Plugin API 根据规范创建一个支持该格式的Kanzi Studio插件。您可以在 <KanziWorkspace>/Examples/CsvPlugin 目录中找到类插件的示例。请参阅 Csv 插件示例。
要本地化文本资源:
- 在您的 Kanzi Studio 工程中,使用文本块 (Text Block) 节点创建文本内容,并将文本资源添加到本地化表中。请参阅添加资源至本地化表。
- 在素材库 (Library) > 本地化 (Localization) 中,右键点击包含要本地化的资源的本地化表,然后选择导出本地化表 (Export Localization Table)。Kanzi Studio 会向 <ProjectName>/Localization/<LocalizationTableName> 中的 .pot 文件导出本地化表模板,同时向目录中导出与您在本地化表中拥有的地区数量相同的 .po 文件。
- (可选)如果希望导出工程中的所有本地化表,请右键点击素材库 (Library) > 本地化 (Localization) 并选择 导出所有本地化表 (Export All Localization Tables)。Kanzi Studio 会为每个本地化表向 <ProjectName>/Localization/<LocalizationTableName> 导出一个本地化表 .pot 模板文件,同时向目录中导出与您在所有本地化表中拥有的地区数量相同的 .po 文件。
- 本步骤取决于您是在首次翻译您的 Kanzi 应用程序还是在更新翻译:
- 如果是首次翻译您的 Kanzi 应用程序,请将 .pot 文件发送给您的译员。译员会为每个地区创建一个 .po 文件。
- 如果是更新翻译,请将每个地区的 .pot 文件和 .po 文件发送给译员。
每个 .po 文件只包含已经为地区翻译的资源。要向 .po 文件添加尚未为地区翻译的资源,译员需要从 .pot 模板文件中使用一个 gettext 翻译编辑器来更新 .po 文件。
- 从译员那里收到 .po 文件之后,将它们保存到 <ProjectName>/Localization/<LocalizationTableName> 中。
- 在 Kanzi Studio 中的素材库 (Library) > 本地化 (Localization) 中,右键点击您的译员已本地化其内容的本地化表,然后选择 导入本地化表 (Import Localization Table)。Kanzi Studio 会将 <ProjectName>/Localization/<LocalizationTableName> 目录中的所有 .po 文件导入到所选的本地化表中。
- (可选) 如果希望手动选择要从中为您的工程导入 .po 文件的位置,请选择 手动导入本地化表 (Import Localization Table Manually)。
- (可选) 如果希望为您工程中的所有本地化表导入 .po 文件,请在 素材库 (Library) 中右键点击 本地化 (Localization),然后选择 导入所有本地化表 (Import All Localization Tables)。Kanzi Studio 会导入 <ProjectName>/Localization 中的所有目录中的所有 .po 文件。
本地化其他资源
除将文本内容翻译成多种语言外,Kanzi 还针对各地区提供不同的资源供您使用,包括动画、笔刷、编辑器、字体、材质、网格、纹理和样式。 您可以使用这个过程对所有类型的资源进行本地化。
要本地化其他资源:
- 为您的 Kanzi Studio 工程创建或导入内容,并将内容所使用的资源添加到本地化表中。请参阅添加资源至本地化表。
例如,如果您拥有 5 个地区并希望为每个地区使用不同的一组纹理,请为您的 Kanzi Studio 工程导入每个地区的纹理图像。请参阅导入。
- 在 素材库 (Library) > 本地化 (Localization) 中,右键点击包含要本地化的资源的本地化表。
Kanzi Studio 打开本地化编辑器 (Localization Editor) 中的本地化表。
- 在本地化编辑器 (Localization Editor) 中查找要本地化的资源,双击要本地化的地区中的资源单元格,然后输入文本或选择要用于该地区的资源的资源 ID。
- 如果您没有为地区选择资源或值,Kanzi 会使用该地区的默认资源或值。默认值列在默认值 (Default Value) 列中。
- 要使用来自文件系统的资源,请在要为其设置资源的单元格中选择 < URL > 并输入 file://,然后输入文件系统中的资源的绝对路径或相对路径。
- 重复上一步,直到为所有资源和地区选择了资源为止。
本地化主题
Kanzi 可以让您将主题应用程序本地化。
要本地化主题:
- 对于每个您要将其内容本地化的主题,从包含要本地化的文本节点的内容创建预设件。请参阅创建和使用预设件。
- 本地化文本资源:
- 在预设件 (Prefabs) 中选择您在上一步中创建的预设件并将其资源添加到本地化表。请参阅添加资源至本地化表。
- 在素材库 (Library) > 本地化 (Localization) 中双击上一步中创建的本地化表,使其在本地化编辑器 (Localization Editor) 中打开,然后添加要将其主题本地化的地区,并本地化文本资源。请参阅本地化文本资源。
要添加地区,点击+ 创建地区 (+ Create Locale),输入地区名称,然后点击确定 (OK)。
- 使用预设件视图 (Prefab View) 节点显示已本地化的内容:
- 在要显示您已本地化的内容的节点下的预设件 (Prefabs) 中,创建一个预设件视图 (Prefab View) 节点并在属性 (Properties) 中添加和设置预设件模板 (Prefab Template) 属性为您在第 1 步中创建的预设件之一。
您必须使用预设件视图 (Prefab View) 节点,以便动态更改预设件视图 (Prefab View) 实例化的预设件。请参阅预设件占位符 (Prefab Placeholder) 和预设件视图 (Prefab View) 节点。
- 在预设件 (Prefabs) 中右键点击在上一步中创建的预设件视图 (Prefab View) 节点并选择添加资源至主题组 (Add Resources to a Theme Group)。
- 在添加资源至主题组 (Add Resources to a Theme Group) 窗口中:
- 将主题组 (Theme Group) 设为要添加资源的主题组。
主题组包含有关哪个主题使用哪些资源的信息。 - 将资源 ID (Resource ID) 重命名为在工程上下文中有意义的内容。
点击添加 (Add)。
Kanzi Studio 向主题组添加指向值 (Value) 列中所示预设件的资源 ID。在您将资源从中添加到主题组 (Theme Group) 的预设件视图 (Prefab View)节点中,Kanzi Studio 会将预设件模板 (Prefab Template) 属性的值设置为资源 ID。
- (可选)在预设件 (Prefabs) 中将第一步中创建的 预设件视图 (Prefab View) 节点复制到要显示相同内容的位置。
- 在素材库 (Library) > 主题 (Theme) 中双击添加了资源的主题组,然后在主题编辑器 (Theme Editor) 中为第 3 步中创建的资源 ID 选择每个主题的正确预设件。
- 要在字典 (Dictionaries) 窗口中查看工程中的本地化表和主题组资源字典,点击地区和主题 (Locales and Themes),然后选择不同的地区和主题以查看预览 (Preview) 中的本地化主题。
编辑本地化的资源
在 本地化编辑器 (Localization Editor) 中,您可以设置和编辑地区所使用的资源。
要编辑本地化的资源:
- 在 素材库 (Library) > 本地化 (Localization) 中,右键点击包含要编辑的资源的本地化表。
Kanzi Studio 打开本地化编辑器 (Localization Editor) 中的本地化表。
- 在本地化编辑器 (Localization Editor) 中:
- 要编辑地区所使用的值,请右键点击资源的单元格,然后设置每个地区所使用的值。
- 如果您没有为地区选择资源或值,Kanzi 会使用该地区的默认资源或值。默认值列在默认值 (Default Value) 列中。
黑色单元格标记使用默认值的条目。 - 要对文本资源使用空字符串,请输入一个值并删除值,然后按下 Enter。
灰色单元格标记使用空字符串的条目。
- 要添加地区,点击+ 创建地区 (+ Create Locale),输入地区名称,然后点击确定 (OK)。
- 要手动为本地化表添加资源,请点击 + 添加资源 (+ Add Resource) 并选择:
- 创建 (Create) 并选择要创建的资源的类型。
- 添加现有 (Add Existing) 并选择工程中已有的资源。
- 要从工程中未使用的本地化表中删除资源 ID,请点击 ,然后选择要删除的资源 ID 并点击 确定 (OK)。
- 要从本地化表中删除资源 ID,请右键点击资源 ID 并选择 删除资源 ID (Delete Resource ID)。
- 要只查看 工程 (Project) 中所选的节点所使用的资源 ID,请点击 。
- 要将文本资源转换为任何其他资源类型和进行反向转换,请右键点击要转换的资源的行标题,然后选择 转换为资源 (Convert to Resource) 或 转换为文本 (Convert to Text)。
请注意,您只能对空闲的资源转换资源类型。
对地区中的资源使用 kzb 文件 URL
将您的工程中使用的资源添加到本地化表中之后,您可以使用一个 kzb URL 指向另一个 Kanzi Studio 工程中的资源。
要对地区中的资源使用 kzb 文件 URL:
- 在 素材库 (Library) > 本地化 (Localization) 中,右键点击包含要对其使用 kzb 文件 URL 的资源的本地化表。
Kanzi Studio 打开本地化编辑器 (Localization Editor) 中的本地化表。
- 在 本地化编辑器 (Localization Editor) 中,右键点击资源的单元格,然后从下拉菜单中选择 < URL >。
- 在单元格中,输入要使用的资源的 kzb 文件 URL。
例如,要使用来自另一个 Kanzi Studio 工程的字体,请输入指向字体的 kzb 文件 URL。
创建地区包
地区包是只包含特定地区的资源的 kzb 文件。 使用 Kanzi Engine API 可以在设置地区时加载该地区使用的应用程序资源。这样可以减少应用程序中 kzb 文件的大小。
要将地区包使用的资源导出到主工程 kzb 文件,在素材库 (Library) 中选择资源,然后在属性 (Properties) 中添加并启用已被代码使用 (Is Used By Code) 属性。所有启用已被代码使用 (Is Used By Code) 属性的资源仅导出到主工程 kzb 文件,而不导出到使用它们的任何地区包。
要创建一个地区包:
- 在素材库 (Library) > 本地化 (Localization) 中将您要添加到 Kanzi 应用程序地区包中的地区使用的资源添加到本地化表中。
- 在素材库 (Library) > 本地化 (Localization) 中双击任一本地化表,然后在本地化编辑器 (Localization Editor) 中点击您要导出到地区包中的资源的地区名称旁的。
-
在Kanzi Studio 中选择 > 导出 (Export) > 导出 KZB (Export KZB)。该命令:
- 为您在本地化表中标记为地区包的每个地区创建一个 kzb 文件。Kanzi Studio 导出地区包时,会以其所含资源的地区命名 kzb 文件。每个地区包文件仅包含该地区使用的资源。
- 创建包含整个 Kanzi Studio 工程的主要 kzb 文件,在本地化表中标记为地区包的地区资源除外。
- 将地区包 kzb 文件存储在 <ProjectName>/Application/bin/Locale_packs 或您在 > 的二进制导出目录 (Binary Export Directory) 属性中指定位置中的 Locale_packs 目录中。
- 使用 Kanzi Engine API 将地区包加载到您的 Kanzi 应用程序中。请参阅教程:本地化您的应用程序。
显示资源的使用情况
在 本地化编辑器 (Localization Editor) 中,您可以在 工程 (Project) 中当前所选的上下文中看到是否和在何处使用了资源。
要显示资源的使用情况:
- 在 素材库 (Library) > 本地化 (Localization) 中,右键点击要检查其资源使用情况的本地化表。
Kanzi Studio 打开本地化编辑器 (Localization Editor) 中的本地化表。
- 使用 本地化编辑器 (Localization Editor):
- 要在本地化表中只显示 工程 (Project) 中当前所选上下文中的资源,请点击 。
- 要列出使用了资源的节点,请右键点击资源 ID 并选择 展示用法 (Show Usage)。
创建本地化表
Kanzi 使用为每个地区保存一个单独值的资源 ID,间接使用本地化资源。Kanzi 使用本地化表记录本地化资源和地区。您可以在素材库 (Library) > 本地化 (Localization) 中的本地化表中看到应用程序使用的所有本地化资源和地区。
您可以创建多个本地化表,以便:
- 将资源类型隔离。这样可以使大型工程的应用程序开发变得更轻松。
- 根据您的应用程序的组成部分隔离资源。当多个应用程序开发者开发同一个应用程序时,每个开发者都可以对自己开发的那部分应用程序拥有一个本地化表。
- 允许您将应用程序的不同部分的内容发送给译员。
要创建本地化表,请在 素材库 (Library) 按下 Alt 并右键点击 本地化 (Localization) 中选择 本地化表 (Localization Table),并命名本地化表。
在多个 Kanzi Studio 工程组合到 Kanzi 应用程序中使用本地化
要在组合多个 Kanzi Studio 工程到 Kanzi 应用程序时使用本地化,您必须通过以下方式之一制作应用程序的主工程屏幕 (Screen) 节点可访问的本地化表。
- 在应用程序的主工程中定义本地化表。
- 将引用工程的本地化表合并到包含屏幕 (Screen) 节点的主工程。然后,您可以使用资源 ID 访问引用工程的本地化表中的资源。请参阅合并工程。
- 联系 Rightware 支持团队,请求获取 Kanzi Engine 插件,它能让您在多个 Kanzi Studio 工程和 kzb 文件上使用本地化。请参阅提交支持请求。
另请参阅
使用地区
教程:本地化您的应用程序
本地化
使用预设件
组合Kanzi Studio 工程到Kanzi 应用程序
打开导航